Commercial applications and databases typically store numerical data in decimal format. Currently, however, microprocessors do not provide instructions or hardware support for decimal floating-point arithmetic. Consequently, decimal numbers are often read into computers, converted to binary numbers, and then processed using binary floating-point arithmetic. Results are then converted back to decimal before being output or stored. Besides being time-consuming, this process is error-prone, since most decimal numbers cannot be exactly represented as binary numbers. Thus, if binary floating-point arithmetic is used to process decimal data, unexpected results may occur after a few computations.
In addition, most existing decimal dividers are for fixed-point (typically integer) decimal data types. As a result, scaling has to be done when working with numbers of different magnitudes. The process of scaling is also time-consuming and error-prone, and designs for fixed-point decimal dividers cannot be directly applied to floating-point decimal dividers.
In many commercial applications, including financial analysis, banking, tax calculation, currency conversion, insurance, and accounting, the errors introduced by converting between decimal and binary numbers are unacceptable and may violate legal accuracy requirements. Therefore, these applications often use software to perform decimal floating-point arithmetic. Although this approach eliminates errors resulting from conversion between binary and decimal numbers, it leads to long execution times for numerically intensive commercial applications, since software implementations of decimal floating-point operations are typically 100 to 1,000 times slower than equivalent binary floating-point operations in hardware.